// pages/kaoqing/kaoqing.js
const $api = require('./../../utils/request').API;
const formatTime = require('./../../utils/util').formatTime;

Page({

  /**
   * 页面的初始数据
   */
  data: {
    onDuty: '',
    offWork: '',
    disable: false,
    localLat: 0,
    localLon: 0,
    PI: 3.14159,//圆周率
    EARTH_RADIUS: 6378137.0,//地球半径
  },

  daka(event) {
    if ( this.data.disable ) {
      return wx.showToast({
        title: '超出打卡范围',
        icon: 'error'
      })
    }
    if (this.data.onDuty) {
      return wx.showToast({
        title: '请勿重复打卡',
        icon: 'error'
      })
    }
    const params = {
      flag: "day",
      kaoqinTime: formatTime(new Date()),
    }
    $api.daka(params).then( res => {
      wx.showToast({
        title: '打卡成功',
        icon: 'success'
      })
      this.refresh()
    }).catch( err => {
      wx.showToast({
        title: '打卡失败',
        icon: 'error'
      })
    })
  },

  xiaban() {
    if ( this.data.disable ) {
      return wx.showToast({
        title: '超出打卡范围',
        icon: 'error'
      })
    }
    const params = {
      flag: "day",
      kaoqinTime: formatTime(new Date()),
    }
    $api.daka(params).then( res => {
      wx.showToast({
        title: '打卡成功',
        icon: 'success'
      })
      this.refresh()
    }).catch( err => {
      wx.showToast({
        title: '打卡失败',
        icon: 'error'
      })
    })
  },

  getRad(d) {
    return d * this.data.PI / 180.0;
  },
   /**
     * 
     * @param lat1 第一个纬度
     * @param lng1第一个经度
     * @param lat2第二个纬度
     * @param lng2第二个经度
     * @return 两个经纬度的距离
     */
  getDistance(lat1, lng1, lat2, lng2) {
    var radLat1 = this.getRad(lat1);
    var radLat2 = this.getRad(lat2);
    var a = radLat1 - radLat2;
    var b = this.getRad(lng1) - this.getRad(lng2);
    var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
    s = s * this.data.EARTH_RADIUS;
    s = Math.round(s * 10000) / 10000.0;
    return s;



    // const radLat1 = lat1*Math.PI / 180.0;
    // const radLat2 = lat2*Math.PI / 180.0;
    // const a = radLat1 - radLat2;
    // const  b = lng1*Math.PI / 180.0 - lng2*Math.PI / 180.0;
    // let s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) +
    // Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)));
    // s = s *6378.137 ;// EARTH_RADIUS;
    // s = Math.round(s * 10000) / 10000;
    // s = s * 1000
    // return s
  },

  getShop() {
    $api.getShopInfo({}).then(res => {
      if (res.data && res.data.length > 0) {
        console.log(res.data);

        const lat = res.data[0].lat
        const lon = res.data[0].lon
        console.log('店铺经度===>'+lat);
        console.log('店铺纬度===>'+lon);


        console.log('当前经度=>'+this.data.localLat);
        console.log('当前纬度=>'+this.data.localLon);
        const dis = this.getDistance(this.data.localLat, this.data.localLon,lat, lon, )
        console.log(dis)
        if (dis < 3000) {
          this.setData({
            disable: false
          })
        } else {
          this.setData({
            disable: true
          })
        }
        wx.hideLoading()
      }
    })
  },

  getLocation() {
    const that = this
    wx.getLocation({
      type: 'wgs84',
      success (data)  {
        console.log(data)
        const latitude = data.latitude
        const longitude = data.longitude
        that.setData({
          localLat: latitude,
          localLon: longitude
        })
        that.getShop()
      },
    })
  },

  getDaka() {
    const parmas = {
      flag: "day",
      kaoqinTime: formatTime(new Date())
    }
    $api.getDakaShiJian(parmas).then( res => {
      if (res.data.length > 0 ) {
        if (res.data.length > 1) {
          this.setData({
            onDuty: res.data[1].kaoqinTime,
            offWork: res.data[0].kaoqinTime
          })
        } else {
          this.setData({
            onDuty: res.data[0].kaoqinTime
          })
        }
      }
    })
  },


  refresh() {
    this.onLoad()
  },

  goUrl(e) {
    wx.navigateTo({
      url: e.currentTarget.dataset.url,
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    wx.showLoading({
      title: '加载中',
    })
    this.getDaka()
    this.getLocation()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})